Many conventional image processors employ error diffusion as a technique for converting a halftone image to a binary (or bit-mapped) image. When performing image thresholding based on an error diffusion method, error generated during the process can be dispared to other pixels in subsequent thresholding processes. Specifically, each pixel in a single row of pixels arranged horizontally in a halftone image (hereinafter, a single row of pixels will be referred to as a “raster”) is sequentially set as a target pixel, and the target pixel is set to either “dot output” or “no dot output” by comparing its density to a threshold value. The error produced for each pixel in the thresholding process is stored in an error buffer. The density of the next target pixel subjected to thresholding is corrected using the error stored in the error buffer (i.e., the error produced when processing the previous pixel) and the corrected pixel density is compared to the threshold value.